if result=0 then call Meldung1 /* Keine CD eingelegt */
'GET_NUM_TRACKS' /* letzten Track ermitteln */
MAXTRACK=result
'STOP'
'GET_DISC_NAME'
cdlabel=result
'GET_ARTIST_NAME'
CDARTIST=result
'GET_TRACK_TIME' 1 /* Einlauftrack */
TIME=result
if pos("Video",CDLABEL)>0 then VIDEO=1
if cdlabel='result' then call Ende /* CeeD wurde beendet */
if cdlabel="<Unknown CD>" then do
cdname=getcatstr(3,'Kein Katalogeintrag !')
address value portname
dopus request '"'getcatstr(20,'Für die CD existiert'lf'kein Eintrag im Medienkatalog.'lf'Bitte wählen Sie den Typ aus.')'"' getcatstr(27,'Audio-CD|Video-CD|CDROM')
if RC=1 then CDDA=1
if RC=2 then VIDEO=1
if RC=0 then CDROM=1
if CDDA=1 then cdname=getcatstr(31,'Audio CD (CDDA)')
if VIDEO=1 then cdname='Video CD'
if CDROM=1 then cdname='CDROM'
end
else CDNAME=CDARTIST"-"cdlabel
address value portname
lister set handle title CDNAME
lister set handle sort name /* Lister nach Namen (da Nummern vorangestellt werden) sortieren */
lister set handle busy on
lister set handle progress MAXTRACK getcatstr(4,'Erstelle Titelliste ...')
lister refresh handle full
do i=1 to MAXTRACK
lister query handle abort /* Abbruch ? */
if result then leave
lister set handle progress count i
lister set handle progress name getcatstr(5,'Titel')' 'i
address 'CEED'
'GET_NUM_TRACKS'
if result=0 then leave /* falls während einlesen CD von Hand ausgeworfen wird */
'GET_TRACK_NAME' i
SONGNAME=result
BLOCKSIZE=2048
if left(SONGNAME,5)="Daten" | left(SONGNAME,4)="Data" | SONGNAME="CD-ROM" | right(SONGNAME,4)="Data" | CDROM=1 then SONGNAME=getcatstr(6,'Daten Track')
if VIDEO=1 & SONGNAME~=getcatstr(6,'Daten Track') then BLOCKSIZE=2328
if VIDEO~=1 & SONGNAME~=getcatstr(6,'Daten Track') then do
CDDA=1 /* wenigsten ein Audio-Track sollte drauf sein */
dopus request '"'getcatstr(28,'Leider ist ein Fehler aufgetreten:'lf'Das Spielen von Video-CD erfordert eine Peggy MPEG-Karte und den ScalaMMPlayer !'lf'Der aktuelle Player-Pfad ist: '"'%s'"'',MPEGPlayer)'"' getcatstr(1,'Beenden')
call Ende
end
end
lister set handle handler 'ceed-handler' 'quotes'
/* install traps */
address value portname
dopus addtrap copy 'ceed-handler'
dopus addtrap move 'ceed-handler'
dopus addtrap copyas 'ceed-handler'
dopus addtrap moveas 'ceed-handler'
dopus addtrap read 'ceed-handler'
dopus addtrap hexread 'ceed-handler'
dopus addtrap delete 'ceed-handler'
dopus addtrap rename 'ceed-handler'
dopus addtrap devicelist 'ceed-handler'
dopus addtrap parent 'ceed-handler'
dopus addtrap root 'ceed-handler'
dopus addtrap show 'ceed-handler'
dopus addtrap play 'ceed-handler'
dopus addtrap protect 'ceed-handler'
dopus addtrap datestamp 'ceed-handler'
dopus addtrap comment 'ceed-handler'
dopus addtrap makedir 'ceed-handler'
dopus addtrap addicon 'ceed-handler'
dopus addtrap cachelist 'ceed-handler'
/*---Beginn des ceed-handler--------------------------------------*/
do forever
if waitpkt('ceed-handler') then do
packet=getpkt('ceed-handler')
if packet='00000000'x then iterate
event=getarg(packet,0)
handle=getarg(packet,1)
titel=getarg(packet,2)
user=getarg(packet,3)
pathstr=getarg(packet,4)
if event="Root" then leave
if event="Parent" then leave
if event="parent" then leave
if event="inactive" then call Ende
address 'CEED'
'GET_NUM_TRACKS'
if result=0 then leave /* CD wurde vor Play entnommen ! */
'GET_TRACK_TIME' MAXTRACK+1
if result~=CDTIME then leave /* CD wurde vertauscht ! */
T_FLAG=0
select
when event="doubleclick" then call Player
when event="Play" then call SelPlay
when event="path" then iterate
when event="Show" then call CDTest
when event="Copy" then call SaveCD
when event="Move" then call SaveCD
when event="CopyAs" then call SaveCDAs
when event="MoveAs" then call SaveCDAs
when event="MakeDir" then call CDEject
when event="AddIcon" then call CDEject
when event="CacheList" then call CDEject
when event="dropfrom" then call SaveCD
when event="drop" then iterate
otherwise call Productinfo
end
address value portname
reply(packet,10)
end
address 'CEED'
'GET_NUM_TRACKS'
if result=0 then leave /* CD wurde während Play entnommen ! */
end
address value portname
lister clear handle
lister refresh handle full
end /* Ende Schleife bei CD-Wechsel */
/*---Unterprogramm CD auswerfen------------------------------------------------------------------*/
when (CDROMPL="TOSHIBA" | CDROMPL="SONY") & showlist("D","asimcdfs.device")=1 then dopus request '"'getcatstr(11,'Speichern von Audiodaten:'lf'Bitte das Speicherformat wählen.')'"' 'MP2|MP32|AIFF|8SVX|MONO|RAW|WAVE|VOC|AU|ADPCM2|ADPCM3|'getcatstr(12,'Abbruch')
when showlist("D","asimcdfs.device")=1 then dopus request '"'getcatstr(11,'Speichern von Audiodaten:'lf'Bitte das Speicherformat wählen.')'"' 'MP2|MP32|AIFF|RAW|WAVE|VOC|AU|ADPCM2|ADPCM3|'getcatstr(12,'Abbruch')
when CDROMPL="TOSHIBA" | CDROMPL="SONY" then dopus request '"'getcatstr(11,'Speichern von Audiodaten:'lf'Bitte das Speicherformat wählen.')'"' 'MP2|AIFF|8SVX|MONO|ADPCM2|ADPCM3|'getcatstr(12,'Abbruch')
otherwise do
dopus request '"'getcatstr(17,'Fehler:'lf'CDDA V1.12 unterstützt nur SONY & TOSHIBA CDROM-Laufwerke.'lf'Für Save über andere CDDA-fähige Laufwerke bitte AsimCDFS (ab V3.5) installieren.')'"' getcatstr(16,'Zurück')
return
end
end
SP_FLAG=RC
if SP_FLAG=0 then return
If (CDROMPL="TOSHIBA" | CDROMPL="SONY") & showlist("D","asimcdfs.device")=1 then FT=word(".mp2 .mp32 .aiff .8svx .mono .cdr .wave .voc .au .adpcm2 .adpcm3",SP_FLAG)
else do
If showlist("D","asimcdfs.device")=1 then FT=word(".mp2 .mp32 .aiff .cdr .wave .voc .au .adpcm2 .adpcm3",SP_FLAG)
dopus request '"'getcatstr(14,'Leider ist ein Fehler aufgetreten:'lf'Das externe Programm X2ADPCM (aktueller Pfad %s ) wurde nicht gefunden.',ADPCM)'"' getcatstr(16,'Zurück')
return
end
if ~exists("DEVS:Datatypes/AIFF") | ~exists("SYS:Classes/Datatypes/aiff.datatype") then do
dopus request '"'getcatstr(14,'Leider ist ein Fehler aufgetreten:'lf'Der AIFF Datatype (aktueller Pfad %s ) ist nicht installiert.',"SYS:Classes/Datatypes/aiff.datatype")'"' getcatstr(16,'Zurück')
return
end
end
if (FT=".mono" | FT=".8svx") | ((FT=".aiff" | FT=".mp2" | FT=".adpcm2" | FT=".adpcm3") & showlist("D","asimcdfs.device")~=1 & (CDROMPL="TOSHIBA" | CDROMPL="SONY")) then do
if ~exists(CDSave) then do
dopus request '"'getcatstr(14,'Leider ist ein Fehler aufgetreten:'lf'Das externe Programm CDDA V1.12 (aktueller Pfad %s ) wurde nicht gefunden.',CDSave)'"' getcatstr(16,'Zurück')
return
end
call open('file','ENV:CDDA_DEVICE',W)
call writech('file',DEVICE)
call close ('file')
call open('file','ENV:CDDA_UNIT',W)
call writech('file',UNIT)
call close ('file')
end
else do
if showlist("D","asimcdfs.device")=1 then do
if ~exists(ASIMCD"AIFF_Stereo") then do
dopus request '"'getcatstr(14,'Leider ist ein Fehler aufgetreten:'lf'Der Devicename des CDROM (aktuell %s ) ist nicht korrekt installiert,'lf'bzw. wählen Sie über AsimCDFS/DiscChanger CD-Audio aus.',ASIMCD)'"' getcatstr(16,'Zurück')
return
end
end
end
if ~exists(Amisox) then do
if FT=".mp32" | FT=".wave" | FT=".voc" | FT=".au" | ((FT=".adpcm2" | FT=".adpcm3" | FT=".mp2") & CDROMPL~="TOSHIBA" & CDROMPL~="SONY" & showlist("D","asimcdfs.device")~=1) then do
dopus request '"'getcatstr(15,'Leider ist ein Fehler aufgetreten:'lf'Das externe Programm AmiSOX (aktueller Pfad %s ) wurde nicht gefunden.'lf'Wählen Sie Speichern als RAW, AIFF, MP2 oder ADPCM.',Amisox)'"' getcatstr(16,'Zurück')
return
end
end
address 'CEED'
'STOP'
address value portname
lister set handle busy on
lister set user busy on
if event='dropfrom' then do
files.count=1
LNG=POS('22'x,titel,2)-1
titel=left(titel,LNG)
files.0=right(titel,LNG-1)
end
else lister query handle selfiles stem files.
lister set handle progress files.count getcatstr(18,'Speichere Audiodaten ...')
if RC=2 then dopus request '"'"Configuration (PlayCD_MM.prefs):"||lf||lf||"CDROM="CDROMPL||lf||"Device="Device" Unit="Unit||lf"Catalog="KATALOG||lf"Videoplayer="MPEGPlayer'"' getcatstr(16,'Zurück')
if RC=4 then dopus request '"'getcatstr(22,'PlayCDDA_CeeD.dopus5 Kurzhilfe:'lf'Mutterverzeichnis: CD neu einlesen'lf'Doppelklick: Spielen ab geklickten Titel'lf'Abspielen: Spiele alle selektierten Titel'lf'Anzeigen: Spiele alle selektierten Titel kurz an'lf'Kopieren: Selektierte Titel speichern'lf'Schublade: CD auswerfen')'"' getcatstr(16,'Zurück')